/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package exia.java.core.services;

import java.util.Date;
import java.util.List;

import exia.java.core.entities.Commande;

/**
 *
 * @author Jeannette Sebastien
 */
public interface IServiceCommande {
	/**
	 * 
	 * @param commande
	 * @return
	 * @throws ServiceCommandeException
	 */
    public boolean addCommande(final Commande commande)throws ServiceCommandeException;
    /**
     * 
     * @param commande
     * @return
     * @throws ServiceCommandeException
     */
    public boolean removeCommande(final Commande commande)throws ServiceCommandeException;
    /**
     * 
     * @param commande
     * @return
     * @throws ServiceCommandeException
     */
    public boolean updateCommande(final Commande commande)throws ServiceCommandeException;
    /**
     * 
     * @return
     * @throws ServiceCommandeException
     */
    public List<Commande> getCommandes()throws ServiceCommandeException;
    /**
     * 
     * @param id
     * @return
     * @throws ServiceCommandeException
     */
    public Commande getCommandeById(final int id)throws ServiceCommandeException;
    /**
     * 
     * @param idClient
     * @return
     * @throws ServiceCommandeException
     */
    public List<Commande> getCommandesByIdClient(final int idClient)throws ServiceCommandeException;
    /**
     * 
     * @param date
     * @return
     * @throws ServiceCommandeException
     */
    public List<Commande> getCommandesByDate(final Date date)throws ServiceCommandeException;
    /**
     * 
     * @return
     * @throws ServiceCommandeException
     */
    public int countCommandes()throws ServiceCommandeException;
    /**
     * 
     * @return
     * @throws ServiceCommandeException
     */
    public boolean hasCommandes()throws ServiceCommandeException;
    /**
     * 
     * @param commande
     * @return
     * @throws ServiceCommandeException
     */
    public boolean hasCommande(final Commande commande)throws ServiceCommandeException;
    
}
